/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;
 
import java.io.Serializable;
import java.util.ArrayList;
import javax.annotation.ManagedBean;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.inject.Named;

/**
 * 
 * @author Cesar
 */
@Named("usuario")
@SessionScoped
@ManagedBean
public class Usuario implements Serializable {

    private String user;
    private String nome;
    private int idade;
    private int telefone;
    private String endereco;
    private String email;
    private String senha;
    private boolean permissao;
    private boolean logado;
    private ArrayList<String> reservados;
    private static String nomeUsuarioLogado;

    public Usuario() {
        reservados = new ArrayList<String>();
        nomeUsuarioLogado = "Anônimo";
    }

    public static String getNomeUsuarioLogado() {
        return nomeUsuarioLogado;
    }

    public static void setNomeUsuarioLogado(String aNomeUsuarioLogado) {
        nomeUsuarioLogado = aNomeUsuarioLogado;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public int getTelefone() {
        return telefone;
    }

    public void setTelefone(int telefone) {
        this.telefone = telefone;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public boolean isPermissao() {
        return permissao;
    }

    public void setPermissao(boolean permissao) {
        this.permissao = permissao;
    }

    public boolean isLogado() {
        return logado;
    }

    public void setLogado(boolean logado) {
        this.logado = logado;
    }

    public ArrayList<String> getReservados() {
        return reservados;
    }

    public void setReservados(ArrayList<String> reservados) {
        this.reservados = reservados;
    }

    public String cadastraUsuario() {
        return "Cadastrado";
    }

    public String DeslogaUsuario() {
        return "Deslogado com sucesso";
    } 

    public void validarNomeDeUsuario(FacesContext fc, UIComponent c, Object valor) {
        /*ArrayList<usuario> usuarios = login.getUsuarios();
        for (usuario x : usuarios) {
            if (x.getUser().equals((String) valor)) {
                throw new ValidatorException(new FacesMessage("Nome de usuário já existe"));
            }
        }*/
        if (user.equals("user")) throw new ValidatorException(new FacesMessage("Nome de usuário já existe"));
    }
}
